A Multithreaded Runtime System With Thread Migration for Distributed Memory Parallel Computing
نویسندگان
چکیده
Multithreading is very effective at tolerating the latency of remote memory accesses in distributed memory parallel computers, but does nothing to reduce the number or cost of those memory accesses. Compiler techniques and runtime approaches, such as caching remote memory accesses and prefetching, are often used to reduce the number of remote memory accesses. Another approach to reduce the number of remote memory access messages is thread migration, which exploits spatial locality by making the entire memory space of any processing element (PE) local. Nomadic Threads are compiler-generated fine-grain threads that migrate between PEs to access data. The runtime system that implements the Nomadic Threads architecture has several attractive features, including support for migrating significant amounts of work, the ability to mix caching and migratory remote memory accesses, and low scheduling complexity. Our straightforward implementation shows that migration may be easily added to many multithreading runtime systems. We also present some unique behavior characteristics of migratory programs to help determine when migration is appropriate or not.
منابع مشابه
Fault-Tolerant Parallel Programming with Atomic Actions
The Pact (parallel actions) parallel programming environment provides an easy-to-use parallel execution and synchronization model based on task parallelization. To give the programmer an abstraction for global data (even on distributed memory machines) the Pact runtime system uses virtual shared memory. Execution’s efficiency is improved with data-dependent dynamic load balancing and latency-ma...
متن کاملSilkRoad: A Multithreaded Runtime System with Software Distributed Shared Memory for SMP Clusters
Multithreaded parallel system with software Distributed Shared Memory (DSM) is an attractive direction in cluster computing. In these systems, distributing workloads and keeping the shared memory operations efficient are critical issues. Distributed Cilk (Cilk 5.1) is a multithreaded runtime system for SMP clusters with the support of divide-and-conquer programming paradigm. However, there is n...
متن کاملOn the compilation of data-parallel languages on a distributed memory multithreaded environment with thread migration
This paper focuses on the use of distributed memory multithreaded environments in data parallel programs and has two main goals. The rst is to show that data parallel programs can support features like communication overlapping, load balancing without global data parallel object redistribution and the eecient use of clusters of uniprocessor and/or symmetric multiprocessors (SMPs). Our extended ...
متن کاملDistributed Cactus Stacks: Runtime Stack-Sharing Support for Distributed Parallel Programs
Parallel Programming Systems based on the Distributed Shared Memory technique has been promoted as easy to program, natural and equivalent to multiprocessor systems. However, most programmers find this is not the case. The shared memory in DSM systems do not have the same access and sharing semantics as shared memory in real multiprocessor systems (shared memory multiprocessors). We present a s...
متن کاملNomadic Threads: a migrating multithreaded approach to remote memory accesses in multiprocessors
This paper describes an abstract multithreaded architecture for distributed memory multicomputers that significantly reduces the number of message transfers when compared to conventional “remote memory access” approaches. Instead of statically executing on its assigned processor and fetching data from remote storage, a Nomadic Thread transfers itself to the processor which contains the data it ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2003